Public Interface IEntityRepository(Of TEntity)
    Function GetById(ByVal id As Integer?, ParamArray includePath() As String) As TEntity
    Sub Add(ByVal entity As TEntity, Optional ByVal save As Boolean = True)
    Sub Delete(ByVal entity As TEntity, Optional ByVal save As Boolean = True)
    Sub DeleteById(ByVal id As Integer, Optional ByVal save As Boolean = True)
    Function All() As IQueryable(Of TEntity)
    Function Create() As TEntity
    Function CreateDetached() As TEntity
End Interface

